Все записи автора Заярный Андрей Александрович

Владелец сайта

Стартовал отборочный этап XI Межрегиональной Олимпиады школьников по информатике и компьютерной безопасности

Рады сообщить Вам, что 19 сентября 2016 года стартовал первый этап XI Межрегиональной Олимпиады школьников по информатике и компьютерной безопасности. Этот этап является отборочным и проводится дистанционно. Он продлится до 17 октября 2016 года. В случае успешного прохождения отборочного этапа у Вас появится возможность зарегистрироваться на заключительный этап Олимпиады.
Подробности о порядке участия в Олимпиаде и регистрация на отборочный этап доступны для авторизованных пользователей по ссылке «Регистрация на отборочный этап» в верхней строке раздела «Олимпиада по информатике и компьютерной безопасности».
После прохождения регистрации на отборочный этап, Вам будет доступна ссылка «Отборочный этап» в верхней строке раздела «Олимпиада по информатике и компьютерной безопасности». Для решения заданий необходимо спланировать удобный день, учитывая что время на них ограничено (240 мин.).

Предельная производительность: C#

Разработка → Предельная производительность: C# из песочницы

performanceЯ поделюсь 30 практиками для достижения максимальной производительности приложений, которые этого требуют. Затем, я расскажу, как применил их для коммерческого продукта и добился небывалых результатов!
Приложение было написано на C# для платформы Windows, работающее с Microsoft SQL Server. Никаких профайлеров – содержание основывается на понимании работы различных технологий, поэтому многие топики пригодятся для других платформ и языков программирования.

Рейтинг языков программирования по версии TIOBE на март 2016

Рейтинг языков программирования по версии TIOBE на март 2016

TIOBE — индекс, оценивающий популярность языков программирования, основываясь на количестве поисковых запросов, содержащих название языка. Статистика подводится ежемесячно, и недавно были опубликованы последние результаты.

читать далее

 

Бесплатные курсы по программированию от Microsoft

Бесплатные курсы по программированию от Microsoft

Сегодня, в день знаний, я хочу рассказать о том, как бесплатно научиться программированию.
Microsoft Virtual Academy выпускает видеокурсы для тех, кто хочет научиться программировать. Совершенно бесплатно можно узнать, как делать сайты, игры, приложения.

читать далее

Роспотребнадзор опубликовал информационное письмо, посвященное портфелям, ранцам и учебным изданиям для школьников

Роспотребнадзор опубликовал информационное письмо, посвященное портфелям, ранцам и учебным изданиям для школьников

 

Федеральная служба по надзору в сфере защиты прав потребителей и благополучия человека в преддверии нового 2016-2017 учебного года выпустила информауционное письмо «О требованиях безопасности, предъявляемых к учебным изданиям, ученическим портфелям и ранцам для детей и подростков». В нем, в частности, напоминается о том, какие должны быть ранцы и учебники, чтобы не испортить осанку и зрение.

читать далее

300: математика, информатика, физика

300: математика, информатика, физика

Один из выпускников, получивших 300 баллов на трёх ЕГЭ, поделился с «Учёбой.ру» секретами подготовки к экзамену и дал советы тем, кто будет сдавать выпускные экзамены в следующем году.

Читать далее: http://4ege.ru/materials_podgotovka/52913-300-matematika-informatika-fizika.html

ЕГЭ 2016

Пару дней назад был ЕГЭ по информатике. Мои ученики отписались и сообщили о своих ощущениях. Все довольно предсказуемо. Для тех, кто готовился давно и регулярно, экзамен не показался слишком сложным. Для тех кто занимался на курсах или под конец решил не заниматься отдавая предпочтение подготовке к другим экзаменам или просто ссылаясь на усталость экзамен показался сложным. Теперь ждем результатов.

Один из важных выводов, который я сделал для себя — это то что не нужно решать 27 задачу. Для решения 27 задачи нужен отдельный курс по программированию, а не попытки натаскать на ее решение. Все равно если ученик программировать не умеет 27 задачу он не решит.

Если кто-то из моих учеников прочитает этот пост, то хочу сказать Вам больше спасибо. Мне было очень приятно вас учить.

Спасибо!

Решение задачи

На плоскости задано множество точек с целочисленными координатами.
Необходимо найти количество отрезков, обладающих следующими
свойствами:
1) оба конца отрезка принадлежат заданному множеству;
2) ни один конец отрезка не лежит на осях координат;
3) отрезок пересекается с обеими осями координат.
Напишите эффективную по времени и по используемой памяти программу
для решения этой задачи.
Программа считается эффективной по времени, если при увеличении
количества точек в k раз время работы возрастает не более чем в k раз.
Программа считается эффективной по памяти, если размер памяти для
хранения всех необходимых данных не зависит от количества точек и не
превышает 1 килобайта.
Перед текстом программы кратко опишите алгоритм решения и укажите
язык программирования и его версию.

Входные данные
В первой строке задаётся N – количество точек в заданном множестве.
Каждая из следующих строк содержит два целых числа x и y – координаты
очередной точки. Гарантируется, что 1 ≤ N ≤ 10000; –1000 ≤ x, y ≤ 1000.
Пример входных данных:
4
6 6
-8 8
-9 -9
7 -5

Выходные данные
Необходимо вывести единственное число: количество удовлетворяющих
требованиям отрезков.
Пример выходных данных для приведённого выше примера входных данных:
2

Решение
Пронумеруем координатные области 1 от до 4.
Область 1 (+,+)
Область 2 (-,+)
Область 3 (-,-)
Область 4 (+,-)
Когда вводится точка, проверяем не лежит ли она на оси.
Если лежит, то просто переходим к вводу очередной точки.
Далее определяем в какой области эта точка находится 1,2,3 или 4. Записываем в массив областей под ее номером, что такая точка уже есть.
Далее смотрим, есть ли точка в противоположной области. Если есть, то увеличиваем количесто отрезков пересекающих обе оси на 1.

 

var i,k,obl,x,y,N: Integer;
    Oblast: array[1..4] of boolean;

begin
  ReadLn(N);
  k:=0;
  Oblast[1]:=false;
  Oblast[2]:=false;
  Oblast[3]:=false;
  Oblast[4]:=false;
  for i:=1 to N do
    begin
      ReadLn(x,y);
      if (x=0) or (y=0) then continue;
      if (x>0) and (y>0) then Obl:=1;
      if (x<0) and (y>0) then Obl:=2;
      if (x<0) and (y<0) then Obl:=3; 
      if (x>0) and (y<0) then Obl:=4;
      Oblast[obl]:=true;
      if obl=1 then if Oblast[3]=true then k:=k+1;
      if obl=2 then if Oblast[4]=true then k:=k+1;
      if obl=3 then if Oblast[1]=true then k:=k+1;
      if obl=4 then if Oblast[2]=true then k:=k+1;
      end;
    end;
  WriteLn(k);
end.
С4